<html>
  <head>
    <title>
      文件
    </title>
  </head>
  <body>
    <script>
         /*
             一、uni.saveFile(OBJECT)

                      1、概述

                                      保存文件盗本地

                      2、平台差异说明

                                      App	  H5	微信小程序	支付宝小程序	百度小程序	抖音小程序、飞书小程序	QQ小程序	快手小程序	京东小程序	元服务	小红书小程序
                                      √	    x	    √	          √	          √	        √	                    √	          x	        √	        x       	√

                      3、saveFile 兼容性
                                              HarmonyOS
                                              HBuilderX 4.25

                                    ★、注意：  saveFile 会把临时文件移动，因此调用成功后传入的  tempFilePath 将不可用

                                    （微信小程序已停止维护wx.saveFile(Object object)接口，建议使用FileSystemManager对象中的方法。）


                      4、OBJECT 参数说明：

                                          参数名	              类型	        必填	      说明

                                      ①、tempFilePath	        String	        是	    需要保存的文件的临时路径

                                      ②、success	            Function	      否	    返回文件的保存路径，res = {savedFilePath: '文件的保存路径'}

                                      ③、fail	                Function	      否	    接口调用失败的回调函数

                                      ④、complete	            Function	      否	    接口调用结束的回调函数（调用成功、失败都会执行）


                                  <1>、success 返回参数说明：

                                                      参数	              说明
                                                    savedFilePath	    文件的保存路径

                      5、示例代码

                                     uni.chooseImage({
                                        success: function (res) {
                                          var tempFilePaths = res.tempFilePaths;
                                          uni.saveFile({
                                            tempFilePath: tempFilePaths[0],
                                            success: function (res) {
                                              var savedFilePath = res.savedFilePath;
                                            }
                                          });
                                        }
                                      }); 

         */      
        
         /*
               二、uni.getSavedFileList(OBJECT)

                      1、概述
                      
                              获取本地已保存的文件列表。

                      2、平台差异说明

                              App	H5	微信小程序	支付宝小程序	百度小程序	抖音小程序、飞书小程序	QQ小程序	快手小程序	京东小程序	元服务	小红书小程序
                              √	  x	    √	        √	            √	        √                   	√	        x	          √         	x	        x

                      3、getSavedFileList 兼容性
                                            HarmonyOS
                                            HBuilderX 4.25

                              （微信小程序已停止维护wx.getSavedFileList(Object object)接口，建议使用FileSystemManager对象中的方法。）

                      4、OBJECT 参数说明：

                                                  参数名	      类型	    必填	      说明

                                              ①、success	    Function	  否	    接口调用成功的回调函数，返回结果见 success 返回参数说明

                                              ②、fail       	Function	  否	    接口调用失败的回调函数

                                              ③、complete	    Function	  否	    接口调用结束的回调函数（调用成功、失败都会执行）

                                            
                                          <1>、success 返回参数说明：

                                                          参数	        类型	          说明

                                                      ①、errMsg	       String	        接口调用结果

                                                      ②、fileList	     Array<Object>	  文件列表


                                          <2>、fileList 中的项目说明：

                                                          键	          类型	          说明

                                                      ①、filePath	      String	    文件的本地路径

                                                      ②、createTime	    Number	    文件的保存时的时间戳，从 1970/01/01 08:00:00 到该时刻的秒数。
                                                      
                                                      ③、size	          Number	    文件大小，以字节为单位。     


                      5、代码示例

                                      uni.getSavedFileList({
                                          success: function (res) {
                                            console.log(res.fileList);
                                          }
                                      });    
         */

         /*
                三、uni.getSavedFileInfo(OBJECT)


                              1、概述

                                        获取本地文件的文件信息。此接口只能用于获取已保存到本地的文件。

                              2、平台差异说明

                                        App	    H5	微信小程序	支付宝小程序	百度小程序	抖音小程序、飞书小程序	QQ小程序	快手小程序	京东小程序	元服务	小红书小程序
                                        √	      x	      √	        √	          √	        x	                      √	      x	          √	        x	        x


                              3、getSavedFileInfo 兼容性
                                                    HarmonyOS
                                                    HBuilderX 4.25

                              4、OBJECT 参数说明：

                                                      参数名	        类型	    必填	    说明

                                                    ①、filePath	    String	    是	    文件路径

                                                    ②、success	    Function	  否	    接口调用成功的回调函数，返回结果见 success 返回参数说明

                                                    ③、fail	        Function	  否	    接口调用失败的回调函数

                                                    ④、complete	    Function	  否	    接口调用结束的回调函数（调用成功、失败都会执行）

                                              <1>、success 返回参数说明：

                                                              参数	        类型	    说明

                                                          ①、errMsg	      String	  接口调用结果

                                                          ②、size	        Number	  文件大小，以字节为单位。

                                                          ③、createTime	  Number	  文件保存时的时间戳，从 1970/01/01 08:00:00 到该时刻的秒数。

                              5、示例代码

                                          示例代码：

                                                uni.getSavedFileInfo({
                                                  filePath: 'unifile://somefile', //仅做示例用，非真正的文件路径
                                                  success: function (res) {
                                                    console.log(res.size);
                                                    console.log(res.createTime);
                                                  }
                                                });
         */

         /*
                四、uni.removeSavedFile(OBJECT)

                            1、概述

                                      删除本地存储的文件。

                            2、平台差异说明

                                        App	H5	微信小程序	支付宝小程序	百度小程序	抖音小程序、飞书小程序	QQ小程序	快手小程序	京东小程序	元服务	小红书小程序
                                        √	  x	    √	        √	            √	          √	                  √	        x	          √	        x	          √

                            3、removeSavedFile 兼容性
                                                HarmonyOS
                                                HBuilderX 4.25

                                        (微信小程序已停止维护wx.removeSavedFile(Object object)接口，建议使用FileSystemManager对象中的方法。)

                            4、OBJECT 参数说明：

                                                参数名	    类型	  必填	    说明

                                            ①、filePath	  String	  是	    需要删除的文件路径

                                            ②、success	  Function	否	    接口调用成功的回调函数

                                            ③、fail	      Function	否	    接口调用失败的回调函数

                                            ④、complete	  Function	否	    接口调用结束的回调函数（调用成功、失败都会执行）


                             5、示例代码

                                          uni.getSavedFileList({
                                            success: function (res) {
                                              if (res.fileList.length > 0) {
                                                uni.removeSavedFile({
                                                  filePath: res.fileList[0].filePath,
                                                  complete: function (res) {
                                                    console.log(res);
                                                  }
                                                });
                                              }
                                            }
                                          });
         */

         /*
                五、uni.getFileInfo(OBJECT)

                             1、概述

                                        获取文件信息

                             2、平台差异说明

                                          App	  H5	微信小程序	支付宝小程序	百度小程序	抖音小程序、飞书小程序	QQ小程序	快手小程序	京东小程序	元服务	小红书小程序
                                          √	    √	      √	        √	          √	            √	                  √	        x	        √	        x	        x

                              3、getFileInfo 兼容性
                                                  HarmonyOS
                                                  HBuilderX 4.25

                              4、OBJECT 参数说明：

                                                参数名	            类型	      默认值	必填	    说明	                                        平台差异说明

                                            ①、filePath	          String		            是	    本地文件路径	

                                            ②、digestAlgorithm	  String	       md5	  否	    计算文件摘要的算法，可取值 md5、sha1。	微信小程序、京东小程序、抖音小程序、App 2.9.0+

                                            ③、success	          Function		          否	    接口调用成功的回调函数	

                                            ④、fail	              Function		          否	    接口调用失败的回调函数	

                                            ⑤、complete	          Function		          否	    接口调用结束的回调函数（调用成功、失败都会执行）

                                    <1>、success 返回参数说明：

                                                    参数	    类型	  说明	                                                      平台差异说明

                                                ①、errMsg	  String	接口调用结果	

                                                ②、size	    Number	文件大小，以字节为单位。

                                                ③、digest	  String	按照传入的 digestAlgorithm 
                                                                        计算得出的的文件摘要	                          微信小程序、京东小程序、抖音小程序、App 2.9.0+
         */

         /*
               六、uni.openDocument(OBJECT)

                                1、概述

                                        在新开页面打开文档，支持格式：  doc、xls、ppt、pdf、docx、xlsx、pptx

                                2、平台差异说明

                                        App	H5	微信小程序	支付宝小程序	百度小程序	抖音小程序、飞书小程序	QQ小程序	快手小程序	京东小程序	元服务	小红书小程序
                                        √	  x	      √	        √	          √	        √	                    √	          √	        √	        √	        √

                                3、openDocument 兼容性
                                              HarmonyOS
                                              HBuilderX 4.31

                                4、OBJECT 参数说明：

                                                      参数名	        类型	    必填	                           说明	                                                  平台差异说明

                                                  ①、filePath	      String	    是	                          文件路径（本地路径），可通过 downloadFile 获得	
                                                  
                                                  ②、fileType	      String	支付宝小程序必填，其他平台非必填	   文件类型，指定文件类型打开文件	                             HarmonyOS、小程序
                                                  
                                                  ③、showMenu	      Boolean	    否	                          右上角是否有可以转发分享的功能	                          微信小程序、支付宝小程序、快手小程序
                                                  
                                                  ④、success	      String	    否	                          接口调用成功的回调函数	
                                                  
                                                  ⑥、fail	          String	    否	                          接口调用失败的回调函数	
                                                  
                                                  ⑦、complete	      String	    否	                          接口调用结束的回调函数（调用成功、失败都会执行）	


                                5、示例代码

                                            uni.downloadFile({
                                                url: 'https://example.com/somefile.pdf',
                                                success: function (res) {
                                                  var filePath = res.tempFilePath;
                                                  uni.openDocument({
                                                    filePath: filePath,
                                                    showMenu: true,
                                                    success: function (res) {
                                                      console.log('打开文档成功');
                                                    }
                                                  });
                                                }
                                              });

                                6、平台差異

                                               平台	      打开方式

                                          ①、小程序	         在小程序的入口应用内打开

                                          ②、App iOS	      在当前应用内打开
                                          
                                          ③、App Android	  调用系统相关应用打开，无相关应用则不能打开
                                          
                                          ④、H5	            使用浏览器打开，当前浏览器不支持则不能打开


                                7、注意点

                                        ①、App端，io操作还可以用更强大的plus.io API。https://www.html5plus.org/doc/zh_cn/io.html

                                        ②、App端，打开各种格式的文件，如office、pdf等，还可以用更强大的三方插件，详见插件市场

                                        ③、选择文件上传，uni-app有自带的api：uni.chooseImage和uni.chooseVideo。
                                        
                                              App端如需选择非媒体文件，可在插件市场搜索文件选择，
                                              
                                              其中Android端可以使用Native.js，无需原生插件，而iOS端需要原生插件。
         */
    </script>
  </body>
</html>